/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package WebCrawlerBD;
import java.util.*;
import java.sql.*;
/**
 *
 * @author cecv
 */
public class Pagina_TempBD {
    private ConexionBD cnxConexion;

    public Pagina_TempBD()
    {

    }
    public int PaginaIgualReg(String url)
    {
        int contador=0;
        try
        {
            String cad=url.substring(url.length() - 1, url.length());
            cnxConexion=ConexionBD.getInstancia();
            if (cad.compareTo("/")==0)
            {
                url=url.substring(0, url.length()-1);
            }

            String sentencia=
                    "Select SUM(cont) "+
                    "from ( " +
                    "SELECT count(*) cont " +
                    "FROM pagina p "+
                    "WHERE p.url='"+url+"' "+
                    "or  p.url='"+url+"/' "+
                    "UNION "+
                    "SELECT count(*) cont "+
                    "FROM pagina_temp pt "+
                    "WHERE pt.url='"+url+"' "+
                    "or pt.url='"+url+"/') a";

            ResultSet resultado=cnxConexion.realizarConsulta(sentencia);

            if (resultado!=null)
            while(resultado.next())
                    {
                        contador=resultado.getInt(1);

                    }


        }
        catch(SQLException e)
        {
            return 0;
        }


        return contador;

    }
    public int PaginaIgual(String url)
    {
        int contador=0;
        try
        {
            String cad=url.substring(url.length() - 1, url.length());
            cnxConexion=ConexionBD.getInstancia();
            if (cad.compareTo("/")==0)
            {
                url=url.substring(0, url.length()-1);
            }

            String sentencia=
                    "Select SUM(cont) "+
                    "from ( " +
                    "SELECT count(*) cont " +
                    "FROM pagina p "+
                    "WHERE p.url='"+url+"' "+
                    "or  p.url='"+url+"/' "+
                    "UNION "+
                    "SELECT count(*) cont "+
                    "FROM pagina_temp pt "+
                    "WHERE pt.url='"+url+"' "+
                    "or pt.url='"+url+"/' " +
                    "UNION " +
                    "SELECT count(*) cont "+
                    "FROM pagina_busqueda pb "+
                    "WHERE pb.url='"+url+"' "+
                    "or pb.url='"+url+"/' " +
                    ") a";
                    
            ResultSet resultado=cnxConexion.realizarConsulta(sentencia);

            if (resultado!=null)
            while(resultado.next())
                    {
                        contador=resultado.getInt(1);

                    }


        }
        catch(SQLException e)
        {
            return 0;
        }


        return contador;
        
    }
    public int BorrarPagBusqueda(String url)
    {
        cnxConexion=ConexionBD.getInstancia();
        String sentencia="DELETE FROM pagina_busqueda " +
                         "WHERE url='"+url+"'";
        return cnxConexion.ejecutarComando(sentencia);


    }
    public int RegistrarLink(String url, int prioridad)
    {
        cnxConexion=ConexionBD.getInstancia();
        String sentencia="INSERT INTO pagina_busqueda " +
                "(url, fecharegistro, prioridad) " +
                "VALUES ('" + url +"', CURRENT_DATE, "+prioridad+ ")";
        return cnxConexion.ejecutarComando(sentencia);

    }
    public int RegistrarURL(String Nombre, String descripcion, String url, String contenido, Integer bytes, Integer prioridad)
    {
        cnxConexion=ConexionBD.getInstancia();
        String sentencia="INSERT INTO PAGINA_TEMP " +
                "(nombre, descripcion, url, contenidopagina, fechaacceso, bytes, prioridad) " +
                "VALUES ('" + Nombre +"', '"+descripcion+"', '"+url+"', '" + contenido +"', CURRENT_DATE, "+bytes+ ", "+prioridad+")";
        return cnxConexion.ejecutarComando(sentencia);


    }
    public ArrayList<String> UrlSearch()
    {

        ArrayList<String> url=new ArrayList<String>();
        try
        {
         cnxConexion=ConexionBD.getInstancia();

        String sentencia="SELECT url, prioridad " +
                        "FROM pagina_busqueda " +
                        "order by prioridad ASC "+
                        "LIMIT 1" ;

       
        ResultSet resultado=cnxConexion.realizarConsulta(sentencia);

        if (resultado!=null)
        while(resultado.next())
                {
                    url.add(resultado.getString("url"));
                    url.add(resultado.getString("prioridad"));

                }
        }
        catch(SQLException e)
        {
            return null;
        }


        return url;
    }

}
